package cn.tedu.net.collection.oop;
//本类用于测试抽象类中构造函数的用法
/*
1.抽象类中可以有构造方法
2.父类的构造方法要优先与子类先执行
3.抽象类不可以创建对象
4.抽象类中存在的构造方法不是为了创建本类对象时调用,而是为了创建子类对象时使用
 */
public class Test3_Abstract2 {
    public static void main(String[] args) {
        Animal1 a = new Pig1();
//        Animal1 a1 = new Animal1(); 不能创建对象
    }
}
abstract class Animal1{
    //创建抽象父类的构造方法
    public Animal1(String s){//传参后覆盖无参,子类的super()会报错
        System.out.println("我是抽象父类的构造方法");
    }
}
class Pig1 extends Animal1{
    public Pig1(){
        super("a");
        System.out.println("我是子类的构造方法");
    }
}